Given two arrays of integers nums1 and nums2, both sorted in non-decreasing order, return a new array containing all elements from both arrays in non-decreasing order. The function should preserve duplicates and handle empty arrays correctly.
def merge_sorted_arrays(nums1, nums2):