def METHOD_NAME(aquifer):
    """
    Returns a list of this aquifer's vertical extent history changes
    returns a list:
        [{
            diff: {},
            prev: {},
            user: string,
            date: date
        }]
    """
    clean_keys = ['well_tag_number', 'start', 'end']
    vertical_aquifer_extents_history = VerticalAquiferExtentsHistory.objects \
        .filter(aquifer_id=aquifer.aquifer_id) \
        .order_by('create_date', 'start') \
        .values()
    if len(vertical_aquifer_extents_history) == 0:
        return []
    index = -1
    create_date = None
    grouped_history = []
    # loop through batches of history items grouping by all the ones with the same create_date
    for history_item in vertical_aquifer_extents_history:
        if history_item['create_date'] != create_date:
            index += 1
            create_date = history_item['create_date']
            grouped_history.append({
                'user': history_item['create_user'],
                'date': create_date,
                'extents': []
            })
        # append to the list of extents in this group
        grouped_history[index]['extents'].append(history_item)
    history = []
    prev = {}
    for history_item in grouped_history:
        extents = []
        # cleans diff dict (removes geom, create_user, update_user, etc)
        for extent in history_item['extents']:
            extents.append({k:v for k, v in extent.items() if k in clean_keys})
        diff = {'extents': extents}
        item = {
            'diff': diff,
            'prev': prev,
            'name': f'Aquifer {aquifer.aquifer_id}\'s Vertical Extents',
            'user': history_item['user'],
            'date': history_item['date']
        }
        prev = diff
        history.append(item)
    return history