'Return the list of `column_names` for this dataset or `None` if unavailable.
:param indeces: the indeces for the columns of which to return the names.
Optional: defaults to None (return all names)
:type indeces: list of ints'

def get_metadata_column_names(self, indeces=None):

    metadata_column_names = (self.dataset.metadata.column_names or getattr(self.dataset.datatype, 'column_names', None) or None)
    if (not metadata_column_names):
        return metadata_column_names
    if indeces:
        column_names = []
        for index in indeces:
            column_type = (metadata_column_names[index] if (index < len(metadata_column_names)) else None)
            column_names.append(column_type)
        return column_names
    return metadata_column_names
