Javadoc
This method is a replacement for finalize() but avoids all its pitfalls (see Joshua Bloch et. all).
Keeps a handle on the connection. If the application called closed, then it means that the handle gets pushed back to the connection
pool and thus we get a strong reference again. If the application forgot to call close() and subsequently lost the strong reference to it,
the handle becomes eligible to garbage connection and thus the the finalizeReferent method kicks in to safely close off the database
handle. Note that we do not return the connectionHandle back to the pool since that is not possible (for otherwise the GC would not
have kicked in), but we merely safely release the database internal handle and update our counters instead.