def METHOD_NAME(self, request_data: dict) -> list:
    # By this point, our award_id has been validated and cleaned up by
    # TinyShield.  We will either have an internal award id that is an
    # integer or a generated award id that is a string.
    award_id = request_data["award_id"]
    award_id_column = "award_id" if type(award_id) is int else "award__generated_unique_award_id"
    filter = {award_id_column: award_id}
    if request_data["sort"] == "cfda_number":
        request_data["sort"] = "assistance_data__cfda_number"
    lower_limit = (request_data["page"] - 1) * request_data["limit"]
    upper_limit = request_data["page"] * request_data["limit"]
    queryset = (
        TransactionNormalized.objects.all()
        .filter(**filter)
        .select_related("assistance_data")
        .values(*list(self.transaction_lookup.values()))
    )
    if request_data["order"] == "desc":
        queryset = queryset.order_by(F(request_data["sort"]).desc(nulls_last=True))
    else:
        queryset = queryset.order_by(F(request_data["sort"]).asc(nulls_first=True))
    rows = list(queryset[lower_limit : upper_limit + 1])
    return self._format_results(rows)