code: @Override
      public DatabaseType getDatabaseType() {
          DatabaseType current = databaseType;
          if (current == null) {
              current = forceGetDatabaseType();
              if (current == null) {
                  throw new IllegalStateException("faulty implementation of "  
                          + LazyJdbcPooledConnectionSource.class.getSimpleName() 
                          + "; forceGetDatabaseType must return a non-null value");
              }
          }
          return current;
      }
docs: Gets the database type. We override the superclass to allow this
  method to succeed even if this instance has not been initialized.
  To do so, we require implementation of {@link #forceGetDatabaseType() }
  to return a non-null value <i>always</i>. This means that subclasses
  must already know their database type.
  
  <p>This method will not set the {@code databaseType} field, though.</p>
  @return  the database type, possible forced