def METHOD_NAME(self, address, addresses_state: dict, page: int):
    # TODO: Write Unit Test
    address_state = addresses_state[address]
    if address_state.ots_bitfield_used_page == page - 1:
        remaining_ots = 2 ** address_state.height - (page - 1) * config.dev.ots_tracking_per_page
        while remaining_ots > 0:
            key = self.generate_bitfield_key(address, page)
            if key not in self.key_value:
                self.key_value[key] = self.get_paginated_data(address, page)
            ots_bitfield = self.key_value[key]
            for i in range(min(config.dev.ots_bitfield_size, ceil(remaining_ots / 8))):
                if ots_bitfield[i] != b'\xff':
                    return
                if remaining_ots >= 8:
                    remaining_ots -= 8
            address_state.ots_bitfield_used_page = page  # TODO: Replace by setter function
            page += 1
            if page * config.dev.ots_tracking_per_page > 2 ** address_state.height:
                return