def diff_supplied(self, results_filenames, labels, tokenizer, output_fh):
        """Returns `output_fh` populated with CSV results giving the n-grams
        that are unique to the witnesses in each set of works in
        `results_sets`, using the labels in `labels`.

        Note that this is not the same as the symmetric difference of
        these sets, except in the case where there are only two
        labels.

        :param results_filenames: list of results filenames to be diffed
        :type results_filenames: `list` of `str`
        :param labels: labels to be applied to the results_sets
        :type labels: `list`
        :param tokenizer: tokenizer for the n-grams
        :type tokenizer: `Tokenizer`
        :param output_fh: object to output results to
        :type output_fh: file-like object
        :rtype: file-like object

        """
        self._add_temporary_results_sets(results_filenames, labels)
        query = constants.SELECT_DIFF_SUPPLIED_SQL
        self._logger.info('Running supplied diff query')
        self._logger.debug('Query: {}'.format(query))
        self._log_query_plan(query, [])
        cursor = self._conn.execute(query)
        return self._diff(cursor, tokenizer, output_fh)