@Unretained(ENTRY_EVENT_OLD_VALUE)
  private Object handleNotAvailableOldValue() {
    @Unretained
    Object result = basicGetOldValue();
    if (result != Token.NOT_AVAILABLE) {
      return result;
    }
    if (getReadOldValueFromDisk()) {
      try {
        result = getRegion().getValueInVMOrDiskWithoutFaultIn(getKey());
      } catch (EntryNotFoundException ex) {
        result = null;
      }
    }
    result = AbstractRegion.handleNotAvailable(result);
    return result;
  }
returns the old value after handling one this is NOT_AVAILABLE. If the old value is
NOT_AVAILABLE then it may try to read it from disk. If it can't read an unavailable old value
from disk then it will return null instead of NOT_AVAILABLE.
geode-core/src/main/java/org/apache/geode/internal/cache/EntryEventImpl.java