code: protected function loadModels()
      {
          $queryType = 'SectionQuery::getList';
          $sort = $this->sort;
          $filter = $this->normalizeFilter();
          $countElements = $this->countElements;
          $select = $this->normalizeSelect();
          $navigation = $this->navigation;
          $keyBy = $this->keyBy;
  
          $callback = function() use ($sort, $filter, $countElements, $select, $navigation) {
              $sections = [];
              $rsSections = $this->bxObject->getList($sort, $filter, $countElements, $select, $navigation);
              while ($arSection = $this->performFetchUsingSelectedMethod($rsSections)) {
  
                  // Если передать nPageSize, то Битрикс почему-то перестает десериализовать множественные свойсвта...
                  // Проверим это еще раз, и если есть проблемы то пофиксим.
                  foreach ($arSection as $field => $value) {
                      if (
                      is_string($value)
                      && Helpers::startsWith($value, 'a:')
                      && (Helpers::startsWith($field, 'UF_') || Helpers::startsWith($field, '~UF_'))
                      ) {
                          $unserializedValue = @unserialize($value);
                          $arSection[$field] = $unserializedValue === false ? $value : $unserializedValue;
                      }
                  }
  
                  $this->addItemToResultsUsingKeyBy($sections, new $this->modelName($arSection['ID'], $arSection));
              }
  
              return new Collection($sections);
          };
  
          $cacheParams = compact('queryType', 'sort', 'filter', 'countElements', 'select', 'navigation', 'keyBy');
  
          return $this->handleCacheIfNeeded($cacheParams, $callback);
      }
docs: CIBlockSection::getList substitution.
  
  @return Collection