@Override
	public boolean removeOverlaySpace(String overlaySpaceName)
			throws LockException, NotFoundException {

		lock.acquire();
		try {
			checkExclusiveAccess();

			AddressSpace space = addressFactory.getAddressSpace(overlaySpaceName);
			if (space == null || !(space instanceof ProgramOverlayAddressSpace os)) {
				throw new NotFoundException("Overlay " + overlaySpaceName + " not found");
			}

			if (!os.getOverlayAddressSet().isEmpty()) {
				return false; // memory blocks are still defined
			}

			addressFactory.removeOverlaySpace(overlaySpaceName);
			overlaySpaceAdapter.removeOverlaySpace(overlaySpaceName);
			addrMap.deleteOverlaySpace(overlaySpaceName);
			clearCache(true);
			setChanged(ProgramEvent.OVERLAY_SPACE_REMOVED, overlaySpaceName, null);
			fireEvent(new DomainObjectChangeRecord(DomainObjectEvent.RESTORED));
			return true;
		}
		catch (IOException e) {
			dbError(e);
		}
		finally {
			lock.release();
		}
		return false;
	}
Notification that a symbol was added.
@param symbol the symbol that was added.
@param eventType the type of change
@param addr the address of the symbol that added
@param oldValue old value depends on the type of the change
@param newValue old value depends on the type of the change
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramDB.java