synchronized boolean fixHistory(int minVersion, int curVersion) throws IOException {
		validate();
		if (minVersion == this.minVersion && curVersion == this.curVersion) {
			return false;
		}

		if (minVersion < 1 || curVersion < minVersion) {
			throw new IllegalArgumentException();
		}

		Version[] newVersions = new Version[curVersion - minVersion + 1];

		int newIx = 0;
		int oldIx = 0;
		int version = minVersion;
		if (minVersion < this.minVersion) {
			while (version < this.minVersion && version <= curVersion) {
				// Add missing versions	
				newVersions[newIx++] = new Version(version++, 0, "<Unknown>", "<Recovered>");
			}
		}
		if (version >= this.minVersion && version <= this.curVersion) {
			// keep as many existing version entries as possible	
			while (versions[oldIx].getVersion() < version) {
				++oldIx;
			}
			while (version <= this.curVersion && version <= curVersion) {
				newVersions[newIx++] = versions[oldIx++];
				++version;
			}
		}
		while (version <= curVersion) {
			// Add missing versions	
			newVersions[newIx++] = new Version(version++, 0, "<Unknown>", "<Recovered>");
		}

		versions = newVersions;
		this.minVersion = minVersion;
		this.curVersion = curVersion;
		writeHistoryFile();

		return true;
	}
Add and/or remove history entries to agree with specified minimum and current versions.
@param minVersion minimum version
@param curVersion current version
@return true if a version correction was performed
Ghidra/Framework/FileSystem/src/main/java/ghidra/framework/store/local/HistoryManager.java