code: def get_columns(self, table):
      request = db_pb2.ColumnsContext(context=self.context, table=table)
      resp = self.stub.GetColumns(request)
      logger.info(
          "%s.get_columns: returned error - %s, error_message - %s",
          self.__class__.__name__,
          resp.error_code,
          resp.error_message,
      )
      data = pickle.loads(resp.data_frame)
      logger.info(
          "%s.get_columns: returned data(type of %s) - %s",
          self.__class__.__name__,
          type(data),
          data,
      )
  
      return self._to_response(resp)
  
imports: import os
  import pickle
  import json
  import grpc
  from mindsdb.microservices_grpc.db import db_pb2_grpc
  from mindsdb.microservices_grpc.db import db_pb2, common_pb2
  from mindsdb.integrations.libs.response import HandlerStatusResponse, HandlerResponse
  from mindsdb.integrations.libs.handler_helpers import action_logger
  from mindsdb.utilities.context import context
  from mindsdb.utilities import log
label_desc: Use image node_id 12 for calling the DBClientGRPC obj's underlying member method code with example usage: obj.get_columns(table) and returns: self