private void checkOldProperties(OpenMode openMode, TaskMonitor monitor)
			throws IOException, VersionException {
		String exePath = dataMap.get(EXECUTE_PATH);
		if (exePath != null) {
			if (openMode == OpenMode.IMMUTABLE) {
				return; // not important, get on path or format will return "unknown"
			}
			if (openMode != OpenMode.UPGRADE) {
				throw new VersionException(true);
			}

			// migrate old data to program info
			Options pl = getOptions(PROGRAM_INFO);

			pl.setString(EXECUTABLE_PATH, exePath);
			dataMap.put(EXECUTE_PATH, null);

			String exeFormat = dataMap.get(EXECUTE_FORMAT);
			if (exeFormat != null) {
				pl.setString(EXECUTABLE_FORMAT, exeFormat);
				dataMap.put(EXECUTE_FORMAT, null);
			}
		}
		int storedVersion = getStoredVersion();
		if (storedVersion < ANALYSIS_OPTIONS_MOVED_VERSION) {
			if (openMode == OpenMode.IMMUTABLE) {
				return;
			}
			if (openMode != OpenMode.UPGRADE) {
				throw new VersionException(true);
			}
			Options oldList = getOptions("Analysis");
			for (String propertyName : oldList.getOptionNames()) {
				oldList.removeOption(propertyName);
			}
		}
		if (storedVersion < METADATA_ADDED_VERSION) {
			if (openMode == OpenMode.IMMUTABLE) {
				return;
			}
			if (openMode != OpenMode.UPGRADE) {
				throw new VersionException(true);
			}
		}
	}
Initialize the following fields from the database and check the database version for an existing database:
<ul>
<li>name</li>
<li>languageName</li>
<li>languageVersion</li>
<li>LanguageMinorVersion</li>
</ul>
@param openMode program open mode
@return version exception if the current version is out of date and can be upgraded
@throws IOException if there is an exception at the database level
@throws VersionException if the data is newer than this version of Ghidra and can not be
upgraded or opened.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramDB.java