Moving modest minimum
Python 2, 41 bytes



lambda l:[sorted(l)[x==min(l)]for x in l]


Try it online!

For each element x we check whether x==min(l). If not, this is False, which is treated as 0 when used as a list index into sorted(l), giving the smallest element. Otherwise, it's True aka 1, giving the second-smallest element, since that element itself is smallest and should be ignored.