def METHOD_NAME(obj, key, ver):
    """
    Returns the value of a Reversion Version item
    """
    if obj is None:
        return None
    # For geom we need to deserialize the stored JSON text from the DB. This is because of an
    # error that is thrown because of an incompatibility between legacy Polygon versioned data
    # and the updated DB MultiPolygon.
    if key == 'geom':
        return json.loads(ver.serialized_data)[0]['fields'].get('geom')
    # get the value from the object
    val = getattr(obj, key, None)
    if val is None:
        return None
    # Key Value lookup
    if key in KEY_VALUE_LOOKUP:
        return getattr(val, KEY_VALUE_LOOKUP[key], None)
    # return original value if no type checks caught
    return val