async def METHOD_NAME(
    session: AsyncSession,
    db: PrefectDBInterface,
    variable_filter: Optional[filters.VariableFilter] = None,
    sort: sorting.VariableSort = sorting.VariableSort.NAME_ASC,
    offset: int = None,
    limit: int = None,
):
    """
    Read variables, applying filers.
    """
    query = sa.select(db.Variable).order_by(sort.as_sql_sort(db))
    if variable_filter:
        query = query.where(variable_filter.as_sql_filter(db))
    if offset is not None:
        query = query.offset(offset)
    if limit is not None:
        query = query.limit(limit)
    result = await session.execute(query)
    return result.scalars().unique().all()