docs: def getData(self, *statements):
          """
          Get the data corresponding to the display statements. The statements
          can be AMPL expressions, or entities. It captures the equivalent of the
          command:
  
          .. code-block:: ampl
  
              display ds1, ..., dsn;
  
          where ds1, ..., dsn are the ``displayStatements`` with which the
          function is called.
  
          As only one DataFrame is returned, the operation will fail if the
          results of the display statements cannot be indexed over the same set.
          As a result, any attempt to get data from more than one set, or to get
          data for multiple parameters with a different number of indexing sets
          will fail.
  
          Args:
              statements: The display statements to be fetched.
  
          Raises:
              RuntimeError: if the AMPL visualization command does not succeed
              for one of the reasons listed above.
  
          Returns:
              DataFrame capturing the output of the display
              command in tabular form.
          """
          # FIXME: only works for the first statement.
          return lock_and_call(
              lambda: DataFrame._fromDataFrameRef(
                  self._impl.getData(list(statements), len(statements))
              ),
              self._lock
          )