docs: protected synchronized final void maybeConnect() throws BlockStoreException {
          try {
              if (conn.get() != null && !conn.get().isClosed())
                  return;
  
              if (username == null || password == null) {
                  conn.set(DriverManager.getConnection(connectionURL));
              } else {
                  Properties props = new Properties();
                  props.setProperty("user", this.username);
                  props.setProperty("password", this.password);
                  conn.set(DriverManager.getConnection(connectionURL, props));
              }
              allConnections.add(conn.get());
              Connection connection = conn.get();
              // set the schema if one is needed
              if (schemaName != null) {
                  Statement s = connection.createStatement();
                  for (String sql : getCreateSchemeSQL()) {
                      s.execute(sql);
                  }
              }
              log.info("Made a new connection to database " + connectionURL);
          } catch (SQLException ex) {
              throw new BlockStoreException(ex);
          }
      }