Refactored to consolidate exception handling (as possible) into
DatabaseConnection (and throw only DbConnectionException in the concrete
classes - still need to get rid of SQLException...)