code: def _get_state_changes(
              self,
              limit: int = None,
              offset: int = None,
              filters: List[Tuple[str, Any]] = None,
              logical_and: bool = True,
      ) -> List[StateChangeRecord]:
          
          cursor = self._form_and_execute_json_query(
              query='SELECT identifier, data FROM state_changes ',
              limit=limit,
              offset=offset,
              filters=filters,
              logical_and=logical_and,
          )
          result = [
              StateChangeRecord(
                  state_change_identifier=row[0],
                  data=row[1],
              )
              for row in cursor
          ]
  
          return result
docs: Return a batch of state change records (identifier and data)
  
          The batch size can be tweaked with the `limit` and `offset` arguments.
  
          Additionally the returned state changes can be optionally filtered with
          the `filters` parameter to search for specific data in the state change data.