private void createVersion3() throws IOException {

		LocalManagedBufferFile vbf = null;
		LocalManagedBufferFile saveFile = null;
		try {

			// Open private file for version update
			vbf = new LocalManagedBufferFile(versionedTestFileMgr, true, -1, VERSIONED);

			saveFile = (LocalManagedBufferFile) vbf.getSaveFile();
			assertNotNull(saveFile);

			long pfileID = vbf.getFileId();
			assertTrue(pfileID != 0);

			// Write application level change file
			writeAppChangeFile(vbf);

			// Modify save file
			byte[] data = new byte[BUFFER_SIZE];
			DataBuffer buf = new DataBuffer(data);

			Arrays.fill(data, (byte) 0xf2);// modified empty buffer
			buf.setId(12);
			saveFile.put(buf, 2);

			Arrays.fill(data, (byte) 0xf3);// new buffer
			buf.setId(13);
			saveFile.put(buf, 3);

			Arrays.fill(data, (byte) 0xf4);// new buffer - added to free list below
			buf.setId(14);
			saveFile.put(buf, 4);

			Arrays.fill(data, (byte) 0xf5);// new buffer
			buf.setId(13);
			saveFile.put(buf, 5);

			Arrays.fill(data, (byte) 0xf6);// new buffer - added to free list below
			buf.setId(16);
			saveFile.put(buf, 6);

			Arrays.fill(data, (byte) 0xf7);// new buffer
			buf.setId(17);
			saveFile.put(buf, 7);

			Arrays.fill(data, (byte) 0xf8);// new buffer - added to free list below
			buf.setId(18);
			saveFile.put(buf, 8);

			Arrays.fill(data, (byte) 0xf9);// new buffer
			buf.setId(19);
			saveFile.put(buf, 9);

			// Set free ID list for output file
			int[] newFreeList = new int[] { 0, 4, 6 };
			saveFile.setFreeIndexes(newFreeList);

			// Copy/Set file parameters
			saveFile.setParameter("TestParm1", 0x329);
			saveFile.setParameter("TestParm2", 0x549);
			saveFile.setParameter("TestParm3", 0x679);

			vbf.saveCompleted(true);

			vbf.close();
			vbf = null;

			saveFile.close();
			saveFile = null;

			assertEquals(2, privateTestFileMgr.getCurrentVersion());
			assertTrue(privateTestFileMgr.getBufferFile(2).exists());
			assertTrue(privateTestFileMgr.getChangeDataFile(2).exists());

		}
		finally {
			if (saveFile != null) {
				try {
					vbf.saveCompleted(false);
					saveFile.close();
				}
				catch (IOException e) {
					// ignore
				}
			}
			if (vbf != null) {
				try {
					vbf.close();
				}
				catch (IOException e) {
					// ignore
				}
			}
		}
	}
Modifies version-2 and produces version-3 which contains:
		Parms: TestParm1=0x329, TestParm2=0x549, TestParm2=0x679
		Buffers: 0[-1]=empty, 1[11]=0xf1.., 2[12]=0xf2.., 3[13]=0xf3.., 4[14]=empty, 5[15]=0xf5.., 6[-1]=empty, 7[17]=0xf7.., 8[18]=0xf8.., 9[19]=0xf9..
@throws IOException
Ghidra/Framework/DB/src/test/java/db/buffers/VersionedLocalBufferFileTest.java