code: protected ReturnCode determineReturnCode(ReturnCode txFilterCode, ReturnCode subFilterCode) {
      // Return the more restrictive of the two filter responses
      switch (subFilterCode) {
        case INCLUDE:
          return txFilterCode;
        case INCLUDE_AND_NEXT_COL:
          return ReturnCode.INCLUDE_AND_NEXT_COL;
        case SKIP:
          return txFilterCode == ReturnCode.INCLUDE ? ReturnCode.SKIP : ReturnCode.NEXT_COL;
        default:
          return subFilterCode;
      }
    }
docs: Determines the return code of TransactionVisibilityFilter based on sub-filter's return code.
  Sub-filter can only exclude cells included by TransactionVisibilityFilter, i.e., sub-filter's
  INCLUDE will be ignored. This behavior makes sure that sub-filter only sees cell versions valid for the
  given transaction. If sub-filter needs to see older versions of cell, then this method can be overridden.
  
  @param txFilterCode return code from TransactionVisibilityFilter
  @param subFilterCode return code from sub-filter
  @return final return code