docs: public void loadDatabaseProperties()
      {
          if (this.getProperty(STARTING_ID) != null)
              return; // Already read (This value will be cached in the environment database cache)
          int iStartID = 1;
          /* This code works, but I prefer to use the DatabaseInfo record.
          try {
              Statement queryStatement = this.getJDBCConnection().createStatement();
      
              String strSQL = "select StartID from DatabaseInfo where ID=1;";
              queryStatement.execute(strSQL);
              
              ResultSet resultset = queryStatement.getResultSet();
              boolean more = resultset.next();
              if (more)
              {
                  iStartID = resultset.getInt(1);
              }
              resultset.close();
              queryStatement.close();
          } catch (SQLException e) {
              // Ignore table not found error.
          }
          */
      	if ((this.getDatabaseType() & (DBConstants.SHARED_DATA | DBConstants.USER_DATA)) != DBConstants.SHARED_DATA)
      		return;		// DatabaseInfo would only exist for shared databases
  
      	RecordOwner recordOwner = null; // ((BaseApplication)this.getDatabaseOwner().getEnvironment().getDefaultApplication()).getMainTask().; // For now
          DatabaseInfo recDatabaseInfo = new DatabaseInfo();
          recDatabaseInfo.setTable(this.doMakeTable(recDatabaseInfo));    // This makes a jdbc table
          String dbName = this.getDatabaseName(true);
          if (dbName.endsWith(SHARED_SUFFIX))
          	dbName = dbName.substring(0, dbName.length() - SHARED_SUFFIX.length());	// Always
          else if (dbName.endsWith(USER_SUFFIX))
          	dbName = dbName.substring(0, dbName.length() - USER_SUFFIX.length());	// Never
          recDatabaseInfo.setDatabaseName(dbName);
  
          int iOldOpenMode = recDatabaseInfo.getOpenMode();
          //x recDatabaseInfo.setOpenMode(recDatabaseInfo.getOpenMode() | DBConstants.OPEN_DONT_CREATE); // Removed 
  
          recDatabaseInfo.init(recordOwner);
  
          recDatabaseInfo.setOpenMode(iOldOpenMode);
          
          if (recDatabaseInfo.getEditMode() == DBConstants.EDIT_CURRENT)
          {
              iStartID = (int)recDatabaseInfo.getField(DatabaseInfo.START_ID).getValue();
              if (!recDatabaseInfo.getField(DatabaseInfo.END_ID).isNull())
                  this.addDatabaseProperty(ENDING_ID, Integer.toString((int)recDatabaseInfo.getField(DatabaseInfo.END_ID).getValue()));
              if (!recDatabaseInfo.getField(DatabaseInfo.BASE_DATABASE).isNull())
                  this.addDatabaseProperty(BaseDatabase.BASE_DATABASE, recDatabaseInfo.getField(DatabaseInfo.BASE_DATABASE).toString());
          }
          if (iStartID <= 0)
              iStartID = 1;
          recDatabaseInfo.free();
          this.addDatabaseProperty(STARTING_ID, Integer.toString(iStartID));
          
          if (m_databaseBase == null) // Always
              if (this.getProperty(BASE_DATABASE) != null)
          {
              Map<String,Object> properties = new HashMap<String,Object>();
              properties.putAll(this.getProperties());
              properties.remove(BASE_DATABASE);
              properties.put(BASE_DATABASE_JDBC_DRIVER, properties.remove(SQLParams.JDBC_DRIVER_PARAM));
              properties.put(DBConstants.DB_USER_PREFIX, DBConstants.BLANK);
              properties.remove(DBConstants.SYSTEM_NAME);
              properties.put(DBConstants.MODE, DBConstants.BLANK);
              m_databaseBase = (BaseDatabase)m_databaseOwner.getDatabase(this.getProperty(BASE_DATABASE), this.getDatabaseType() & DBConstants.TABLE_MASK, properties);
          }
      }