@Override
    public Optional<RefDataValue> supplyValue() {
        LOGGER.trace("supplyValue()");
        try {
            final Optional<RefDataValue> value = refDataStore.getValue(mapDefinition, key);
            if (value.isPresent()) {
                successfulMapDefinition = mapDefinition;
            }
            return value;
        } catch (Exception e) {
            throw new RuntimeException(LogUtil.message(
                    "Error supplying value for key [{}], {}: {}",
                    key, mapDefinition, e.getMessage()), e);
        }
    }
Materialise the value that this is proxying. The consumeValue() method should be preferred
as this method will involve the added cost of copying the contents of the value.

@return An optional value, as the value may have been evicted from the pool. Callers
should expect to handle this possibility.
stroom-pipeline/src/main/java/stroom/pipeline/refdata/store/SingleRefDataValueProxy.java