def get_row_history(row: 'md_table.Table'
    ) ->'typing.Dict[md_column.Column, typing.Dict[str, typing.Any]]':
    """
    Gets the history for the specified row.

    This returns a dict, indexed by Column, with values being another dict with `old` and `new` keys
    that represent the old and new values of the item.
    """
    d = {}
    for column in row.table.iter_columns():
        old_value = row.get_old_value(column)
        new_value = row.get_column_value(column, return_default=False)
        d[column] = {'old': old_value, 'new': new_value}
    return d
