private DatabaseInformation parseDatabaseInfo() throws SQLException {
		DatabaseInformation dbInfo = new DatabaseInformation();
		dbInfo.databasename = keyValueTable.getValue("name");
		dbInfo.owner = keyValueTable.getValue("owner");
		dbInfo.description = keyValueTable.getValue("description");
		dbInfo.major = (short) Integer.parseInt(keyValueTable.getValue("major"));
		dbInfo.minor = (short) Integer.parseInt(keyValueTable.getValue("minor"));
		dbInfo.settings = Integer.parseInt(keyValueTable.getValue("settings"));
		String val = keyValueTable.getValue("readonly");
		dbInfo.readonly = false;
		if (val.length() > 0) {
			dbInfo.readonly = (val.charAt(0) == 't');
		}
		val = keyValueTable.getValue("trackcallgraph");
		dbInfo.trackcallgraph = false;
		if (val.length() > 0) {
			dbInfo.trackcallgraph = (val.charAt(0) == 't');
		}
		try {
			dbInfo.layout_version = Integer.parseInt(keyValueTable.getValue("layout"));
		}
		catch (SQLException exception) { // If this is an old layout, it may
			// not have this key
			dbInfo.layout_version = 0; // In which case, we know it is version 0
		}
		dbInfo.dateColumnName = keyValueTable.getValue("datecolumn");
		if (dbInfo.dateColumnName.equals("Ingest Date")) {
			// name
			dbInfo.dateColumnName = null; // Don't bother holding it
		}
		readExecutableCategories(dbInfo);
		readFunctionTags(dbInfo);
		return dbInfo;
	}
Parse <code>keyValueTable</code> data into a {@link DatabaseInformation} object.
@return a database information object
@throws SQLException if there is an error parsing the key/value table
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/client/AbstractSQLFunctionDatabase.java